package pe.edu.unmsm.fiee.sispagos.presentacion.controller.mantenimiento;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.faces.event.ActionEvent;

import org.primefaces.event.SelectEvent;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import pe.edu.unmsm.fiee.sispagos.negocio.modelo.AlumnoDTO;
import pe.edu.unmsm.fiee.sispagos.negocio.servicio.AlumnoService;

@Controller
@Scope("view")
public class ManteAlumnoController {

	private AlumnoDTO alumnoEditar;
	private String msjeAlumno;
	private String labelAlumno;
	private String strBuscar;
	private List<AlumnoDTO> listAlumnos;
	
	@Resource
	AlumnoService alumnoService;
	
	public ManteAlumnoController() {
		super();
		setAlumnoEditar(new AlumnoDTO());
		setMsjeAlumno("");
		setLabelAlumno("");
		setStrBuscar("");
	}
	
	
    public List<String> completarAlumno(String query) {  
        List<String> results = new ArrayList<String>();  
        setListAlumnos(alumnoService.listarAlumnosxLikeApellidosyNombres(query));
        for (AlumnoDTO alumnoDTO : getListAlumnos()) {
			results.add(alumnoDTO.getCodigoMatricula()+" - "+alumnoDTO.getApellidoPatAlu()+" "+alumnoDTO.getApellidoMatAlu()+" "+alumnoDTO.getNomAlumno());
		}
        return results;  
    }  
    
	public void asignarCodAlumno(SelectEvent sev){
		
		for (AlumnoDTO alu : getListAlumnos()) {
			if(getStrBuscar().equals(alu.getCodigoMatricula()+" - "+alu.getApellidoPatAlu()+" "+alu.getApellidoMatAlu()+" "+alu.getNomAlumno()))
			{
				setAlumnoEditar(alu);
			}
		}
		setLabelAlumno("label label-success");
	}
    
	public void nuevoAlumno(ActionEvent ev){
		setAlumnoEditar(new AlumnoDTO());
		setStrBuscar("");
	}
	public void guardarNuevoAlumno(ActionEvent ev){
		setMsjeAlumno(alumnoService.guardarAlumno(getAlumnoEditar()));
		if(getMsjeAlumno().equals("Se guardo con Exito."))
			setLabelAlumno("label label-success");
		else
			setLabelAlumno("label label-important");
		setAlumnoEditar(new AlumnoDTO());
		setStrBuscar("");
	}
	
/**********************GETTERS AND SETTERS**************************/
	public AlumnoDTO getAlumnoEditar() {
		return alumnoEditar;
	}

	public void setAlumnoEditar(AlumnoDTO alumnoEditar) {
		this.alumnoEditar = alumnoEditar;
	}
	public String getMsjeAlumno() {
		return msjeAlumno;
	}
	public void setMsjeAlumno(String msjeAlumno) {
		this.msjeAlumno = msjeAlumno;
	}
	public String getLabelAlumno() {
		return labelAlumno;
	}
	public void setLabelAlumno(String labelAlumno) {
		this.labelAlumno = labelAlumno;
	}

	public String getStrBuscar() {
		return strBuscar;
	}

	public void setStrBuscar(String strBuscar) {
		this.strBuscar = strBuscar;
	}


	public List<AlumnoDTO> getListAlumnos() {
		return listAlumnos;
	}


	public void setListAlumnos(List<AlumnoDTO> listAlumnos) {
		this.listAlumnos = listAlumnos;
	}
}
